<?php

require_once 'Banco.php';
require_once 'Model/Confirmados.php';
require_once 'DAO/DAOUsuario.php';
require_once 'DAO/DAOEventos.php';
class DAOConfirmadosEventoRepublica extends Banco{
    
    function getConfirmadosByEvento($codEvento) {
        $confirmados = array();
        Banco::conecta();
        $banco = Banco::getBanco();
        if ($sql = $banco->prepare("SELECT CRE_CODUSUARIO, CRE_CODEVENTOREPUBLICA, CRE_DATACONFIRMADO FROM TB_CONFIRMADOSREPUBLICA WHERE CRE_CODEVENTOREPUBLICA = ?  AND CRE_DATACONFIRMADO IS NOT NULL ORDER BY RAND();")) {
            $sql->bind_param('i',$codEvento);
            $sql->execute();
            $sql->bind_result($usuario, $evento, $data);
            while ($sql->fetch()) {
                $confirmado = new Confirmados();
                $du = new DAOUsuario();
                $de = new DAOEventos();
                $confirmado->setUsuario($du->getUsuario($usuario));
                $confirmado->setEvento($de->getEvento($evento));
                $confirmados[] = (object)$confirmado;
            }
            $sql->close();
        }
        return $confirmados;        
    }
    
    function usuarioEstaConfirmado($codEvento, $codUsuario) {
        Banco::conecta();
        $banco = Banco::getBanco();
        if ($sql = $banco->prepare("SELECT CRE_CODUSUARIO, CRE_CODEVENTOREPUBLICA, CRE_DATACONFIRMADO FROM TB_CONFIRMADOSREPUBLICA WHERE CRE_CODEVENTOREPUBLICA = ? AND CRE_CODUSUARIO = ? AND CRE_DATACONFIRMADO IS NOT NULL;")) {
            $sql->bind_param('ii',$codEvento, $codUsuario);
            $sql->execute();
            $sql->bind_result($usuario, $evento, $data);
            while ($sql->fetch()) {
                return true;
            }
            $sql->close();
        }
        return false;
    }
    
    function addConfirmado(Confirmados $confirmado) {
        $evento=null;
        $usuario=null;
        if(is_a($confirmado->getEvento(), 'EventoRepublica')){
            $evento = $confirmado->getEvento()->getCodigo();
        }
        if(is_a($confirmado->getUsuario(), 'Usuario')){
            $usuario=$confirmado->getUsuario()->getCodigo();
        }
        Banco::conecta();
        $banco = Banco::getBanco();
        if ($sql = $banco->prepare("INSERT INTO TB_CONFIRMADOSREPUBLICA VALUES (?, ?, NOW());")) {
            $sql->bind_param('ii',$usuario,$evento);
            $sql->execute();
            $sql->close();
        }
        if ($sql = $banco->prepare("UPDATE TB_CONFIRMADOSREPUBLICA SET CRE_DATACONFIRMADO=NOW() WHERE CRE_CODEVENTOREPUBLICA = ? AND CRE_CODUSUARIO = ?;")) {
             $sql->bind_param('ii',$evento,$usuario);
             $sql->execute();
             $sql->close();
         }
    }
    
    function removeConfirmado(Confirmados $confirmado) {
        $evento=null;
        $usuario=null;
        if(is_a($confirmado->getEvento(), 'EventoRepublica')){
            $evento = $confirmado->getEvento()->getCodigo();
        }
        if(is_a($confirmado->getUsuario(), 'Usuario')){
            $usuario=$confirmado->getUsuario()->getCodigo();
        }
        Banco::conecta();
        $banco = Banco::getBanco();
        if ($sql = $banco->prepare("UPDATE TB_CONFIRMADOSREPUBLICA SET CRE_DATACONFIRMADO=NULL WHERE CRE_CODEVENTOREPUBLICA = ? AND CRE_CODUSUARIO = ?;")) {
            $sql->bind_param('ii',$evento, $usuario);
            $sql->execute();
            $sql->close();
        }
    }
}

?>
